iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

相信寫過 javaScript ES6 的大家一定使用過,high order function
譬如 map, reduce,接下來就來講解 high order function 是什麼。

  1. high order function 定義一:function 可以當成參數傳入另一個 function。
const a = (callback) => {
   callback();  
}
a(()=>{console.log('calback function')}); // calback function;
  1. high order function 定義二: function 可以被function return 出來。
const a = ()=>{
    return function(x){
        console.log('x',x);
    }
}
const xFunc = a();
xFunc(5);// x,5

High order function 的好處就是類似前天提到的 pure function 把他封裝在某在 function 裡。
去執行他特定功能,外層也不用知道裡面怎麼做。如果你有個 function 是進來的數值統一加 2 ,
然後再帶一個數值去乘以他,那就可以這樣寫。

const caculate = (x) =>{
    return (y)=>x*y;
}
const x = caculate(5);
const xy = x(4); // 20;

或是寫成這樣 const sum = caculate(5)(4);

這樣是不是每一個 function 就可以專注他的參數,並把參數帶給下一個 function 去做事。


上一篇
day18: pure function
下一篇
day20: immuable
系列文
寫出好維護又簡潔的 react 程式碼 feat: Function Programming30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言